// =====================================================================================
// 
//       Filename:  config.h
// 
//    Description:  Paramètres de configuration additionnels pour l'import des réseaux
// 
//        Version:  1.0
//        Created:  12/09/2009 18:28:19
//       Revision:  none
//       Compiler:  g++
// 
//         Author:  François Hissel (fh), francois.hissel@m4x.org
//        Company:  
// 
// =====================================================================================

#ifndef  CONFIG_H_INC
#define  CONFIG_H_INC

#include	<string>
#include	"ast.h"

/**
 * \struct Config
 * \brief Structure rassemblant les paramètres de configuration nécessaires à l'interprétation d'un réseau routier à partir d'un fichier d'entrées
 *
 * La structure rassemble plusieurs paramètres de configuration utiles lors de la lecture d'un réseau routier : nom du champ qui indique le sens de circulation, valeurs possibles du champ,...
 */
struct Config {
	string nom_sens;	//!< Nom du champ qui repère le sens de circulation
	string sens_unique;	//!< Valeur du champ qui indique que le tronçon est en sens unique
	string sens_double;	//!< Valeur du champ qui indique que le tronçon est à double sens
	string sens_inverse;	//!< Valeur du champ qui indique que le tronçon est en sens inverse
	int champ_sens;	//!< Index du champ qui repère le sens de circulation
	int champ_zini;	//!< Index du champ qui repère la cote du sommet initial du tronçon
	int champ_zfin;	//!< Index du champ qui repère la cote du sommet final du tronçon
	string nom_zini;	//!< Nom du champ qui indique la cote initiale du tronçon de route
	string nom_zfin;	//!< Nom du champ qui indique la cote finale du tronçon de route
	AST::SyntaxNode *poids;	//!< Arbre syntaxique de calcul du poids d'un arc
	string fic_osiris_itin; //!< Valeur du champ qui contient le path du fichier temporaire d'interface pour un itinéraire simple avec Osiris-inondation
	string fic_osiris_tourn; //!< Valeur du champ qui contient le path du fichier temporaire d'interface pour une tournée d'enjeux avec Osiris-inondation
	string weight_unit; //!< Unité d'affichage du poids d'un arc
	string couleur_coupe; //!< Couleur hexadécimale des arcs coupés quand on exporte la carte au format image
	bool fond_transparent; //!< Vrai si le fond des cartes générées (PNG) doivent avoir le fond transparent, faux si le fond doit être blanc
	string svg_file;

	Config():champ_sens(-1),champ_zini(-1),champ_zfin(-1),poids(0), fic_osiris_itin(""), fic_osiris_tourn(""), weight_unit(""), couleur_coupe("0000FF"), fond_transparent(false), svg_file(""){}	//!< Constructeur standard
	~Config() {delete poids;}	//!< Destructeur standard, libère la mémoire associée à l'objet
};

#endif   // ----- #ifndef CONFIG_H_INC  -----
